// 如何创建一个http服务器
// http服务器是继承自tcp服务器的 http协议是应用层协议 是基于TCP的
// 存储二进制 对请求和响应进行了包装
let http = require('http')
let url = require("url")
let server = http.createServer(function(req, res){
    // req res都是流对象
    // req 是可读流
    // res 是可写流
    // 发消息就等于客户端连接吗？
}).listen(8080, ()=>{
    console.log('server started')
})



// 服务器监听客户端请求，当请求来的时候执行回调
server.on('request', (req, res)=>{
    // 第二个参数为true，query为对象 解析请求url
    let {pathname, query} = url.parse(req.url, true)


    console.log(req.method) //获取请求方法名
    console.log(req.url) // 获取请求路径
    console.log(req.headers) // 获取请求头
    let result = []
    req.on('data', function(data){
        result.push(data)
    })
    req.on('end', function(){
        let r = Buffer.concat(result) // 获取请求体
        res.end(r)
    })
})
// server.on('connection', (socket)=>{})
server.on('close', ()=>{})
server.on('error', err=> {})

/**
 * 3，多部分对象集合
 *  一个请求体中发多个类型的文件
 * 3.1 multipart/form-data
 *      Content-Type:multipart/form-data; boundary=AaB03x(分隔符)
 *      分隔符之间是一个字段，字段中间用换行符隔开，上面是内容类型，下面是值
 * 3.2 multipart/byteranges
 */

